Кэширование ресурсов Internet



Для экономии пропускной способности и ускорения загрузки страниц Web стоит попробовать воспользоваться кэшированием.

Кэширование — технология, которая вносит элемент интеллектуальности в концепцию хранения и пересылки данных, определяя, какие информационные ресурсы будут скопированы из ядра на периферию сети и как часто они будут обновляться. В основу технологии кэширования положен тот факт, что данные дешевле и эффективнее хранить, чем передавать. На самом деле, эта идея не нова: в компьютерах и других электронных вычислительных устройствах данные хранятся локально для уменьшения времени доступа к ним, тот же принцип реализуется и в браузерах Web, где последние просмотренные страницы Web находятся в кэш-памяти на жестком диске пользователя.

Кэширующие серверы могут также применяться в корпоративной локальной сети, способствуя повышению производительности Intranet. Они уже используются более чем в 75% компаний из списка Global 2000, и, по прогнозам Meta Group, ожидается их дальнейшее распространение до уровня «повсеместного» использования к 2003 г., причем установка кэширующих серверов предполагается даже в филиалах компаний, где сегодня они применяются очень редко. По словам представителя Meta Group Питера Ферстбрука, технология кэширования в корпоративной сети обладает четырьмя основными преимуществами.

Во-первых, это экономия денежных средств, так как появляется возможность отложить на некоторый срок наращивание мощности брандмауэров и устройств доступа к глобальной сети. Поскольку кэширующие серверы перехватывают все пользовательские запросы, они ограничивают внешний доступ к внутренним ресурсам и скрывают IP-адреса узлов корпоративной сети. Вторым преимуществом является лучшее использование пропускной способности при сохранении существующей инфраструктуры, например снижается вероятность возникновения заторов на брандмауэре и т. п. В-третьих, это раширение возможностей по управлению ресурсами Web (например, мониторинг и контроль использования). В-четвертых, кэширование повышает эффективность использования Web — количество внешних запросов к страницам Web обычно снижается на 30—65% (см. Рисунок 5). Точная цифра зависит от типа кэшируемых объектов: чем они больше, тем выше степень эффективности, особенно для крупных графических файлов или потоков видео. (Следует также иметь в виду, что кэширование может быть применено не для всех видов информации, поэтому в случае обращения к некоторым «неудобным» узлам Web повышения производительности не наблюдается.) Кэширование снимает часть нагрузки с перегруженных узлов Web и предохраняет их от резких колебаний трафика.

Рис.5 Пример размещения сетевых элементов, необходимых для скоростной доставки информации от пользователя Internet к провайдеру доставки контента (Content Delivery Provider, CDP).

Идея кэширования сама по себе очень проста, однако использование этой технологии для организации интеллектуальной доставки информации на периферию сети порождает ряд специфических проблем.

Могут быть проблемы

Решение о внедрении в сети технологии кэширования необходимо принимать с учетом нескольких важных обстоятельств. Во-первых, кэш-сервер всегда должен располагать самыми последними, обновленными данными. Так как изменения в информационные ресурсы узла Web могут вноситься довольно часто, то данные, скопированные из него на кэширующий сервер, могут устареть, поэтому важно своевременно обновлять информацию в кэше. Большинство узлов Web состоит из объектов или элементов (например, логотипов или графических изображений), остающихся неизменными неделями, месяцами и годами. Другие же элементы (такие, как тексты или реклама) обычно более динамичны и изменяются ежедневно или даже ежечасно. Следовательно, алгоритмы кэширования должны «знать», как хранить перенесенные на кэширующий сервер страницы в актуальном состоянии, и отслеживать место и время внесения изменений. Чтобы обеспечить обновление в кэше только тех объектов, которые часто меняются, необходимо учитывать логическую структуру страниц Web.

«Одним из важных моментов является принципиальная «кэшируемость» тех или иных ресурсов, — говорит Билл Лим, старший менеджер по маркетингу Digital Island. — По мере того как на все большем количестве узлов Web используется динамически генерируемая информация и такие технологии, как персонализация и профилирование, применение стандартных методов кэширования становится все менее эффективно. Учитывая это, многие производители кэширующих систем предложили продукты со встроенной поддержкой динамически меняющихся данных, включая поддержку «плюшек», аутентификации, строк запросов и динамически формируемых страниц».

Кэширующие серверы кроме своей основной функции могут выполнять и некоторые другие. Так, иногда они работают в качестве proxy-серверов, которые, контролируя или ограничивая пропускную способность на выходе, обеспечивают более простой способ совместного доступа нескольких пользователей к одному соединению IP. Такой подход полезен, когда к одному узлу Web каждый день в определенное время обращается группа сотрудников: в этом случае к ресурсу, например CNN, посылается одиночный запрос, и все получают единую версию требуемых данных от локального кэширующего сервера.

Компании Microsoft, Netscape, Novell и iPlanet выпускают продукты, в которых функции кэша совмещаются с функциями брандмауэра, что позволяет отказаться от установки отдельного брандмауэра. Однако Ферстбрук отмечает, что такой подход усложняет поддержку программного и аппаратного обеспечения, особенно при создании сложных сценариев безопасности. «Более того, пользователи обнаружили, что такие продукты не очень хороши, с точки зрения как производительности (многие пользователи отключают функцию кэширования для увеличения скорости выполнения операций), так и функциональности управления (браузеры Web должны заново конфигурироваться), — говорит он. — Имеется также опасность, что proxy-сервер может стать критической точкой отказа».

Где должен располагаться кэш по отношению к сетевым устройствам? «Наибольшей популярностью пользуются три конфигурации: кэш помещается рядом с маршрутизатором и обрабатывает трафик по протоколу управления кэшированием Web (Web Cache Control Protocol, WCCP); кэш объединяется с коммутатором Уровня 4 или выше и управляет трафиком; кэш встраивается в коммутатор Уровня 2 или Уровня 3, а управление трафиком передается отдельному устройству балансировки нагрузки (F5, Radware)», — отмечает Грег Говатос, директор подразделения маркетинга новой компании CacheFlow, добившейся больших успехов в области кэширующих систем.

Что касается физического расположения кэша, то его следует размещать как можно ближе к пользователю. Для предприятия это означает, что кэширование должно выполняться в корпоративной сети, на ее границе. Кэширующий сервер может действовать либо прозрачным образом, перехватывая все запросы от браузеров Web, либо в составе proxy-сервера, при этом все запросы адресуются ему явным образом.

Для сотрудников компаний, работающих дома, высокоскоростной удаленный доступ означает кэширование в точке присутствия провайдера Internet. Если при этом используется прозрачное кэширование, то отпадает необходимость реконфигурации каждого браузера. Кэширующие серверы могут тиражировать информационные ресурсы по географически разнесенным «зеркальным» узлам Web, снижая затраты на трафик, связанный с передачей информации на большие расстояния, разгружая маршрутизаторы, точки сетевого доступа (Network Access Points, NAP) и каналы связи (см. Рисунок 6).

Рис.6 Топология сети, в которой применяются кэширование и доставка контента от пользователя к провайдеру Internet, типична для корпоративных сетей и Intranet.

Важно отметить, что лучшие алгоритмы кэширования не ориентируются исключительно на пользовательские запросы при перемещении ресурсов исходного сервера в кэш-память: они стараются поместить в кэш информацию заранее, предвидя интерес пользователей к некоторым заметным событиям в Internet. Так, например, если в Internet транслируется шоу с участием Backstreet Boys и N’Sync, то можно с уверенностью утверждать, что найдется немало пользователей, которые захотят его посмотреть. Подобный подход может быть востребован как в корпоративных, так и в общедоступных сетях, таких, как сеть Akamai. Необходимым условием своевременного кэширования данных является представление их на сервере-источнике в специальном формате, с указанием определенных параметров процедуры кэширования, включая интервал обновления, типы объектов и т. д.

По словам представителя компании CacheFlow Говатоса, кэширующие серверы часто дополняются устройствами балансировки нагрузки или коммутаторами Web (такие продукты производят, например, Alteon, Arrowpoint и Foundry). Эти устройства анализируют заголовки пакетов и перенаправляют некэшируемую информацию (например, зашифрованный трафик защищенных соединений, почтовые сообщения или новости) прямо по назначению, минуя кэширующий сервер. «Коммутаторы и устройства балансировки нагрузки конфигурируются для передачи запросов на соответствующие кэширующие устройства, — говорит Дэвид Гриффит, генеральный директор подразделения кэширующих устройств компании InfoLibria — еще одного новичка в этой области. — Например, запросы с URL-адресами, начинающимися с букв от «a» до «f», направляются на первый кэширующий сервер в группе, от «g» до «n» — на второй, и т. д. Запросы могут также заноситься в хэш-таблицу домена с дальнейшей передачей на то или иное кэширующее устройство». Запросы на файлы с определенными расширениями (*.gif или *.jpeg) также могут направляться на определенный кэширующий сервер, оптимизированный для данного вида информационного ресурса.

«Однако всегда, даже при использовании коммутатора Web, топологию сети по-прежнему нужно выбирать такой, чтобы задержки на промежуточных маршрутизаторах и перегруженных соединениях были минимальны. Внимания к себе требуют и более тонкие вопросы, включая проблемы, относящиеся к дуплексным конфигурациям, автоматической установке связи, алгоритмам балансировки нагрузки, обеспечению устойчивости сеанса и параметрам конфигурации TCP/IP, например интервалам повторной передачи», — говорит Лим.

Выбор систем кэширования

Итак, каковы на сегодня возможности выбора продуктов кэширования? Эволюция функций, особенности применения и ценовой политики привели к естественному разделению рынка на три категории. Во-первых, это полностью программные средства кэширования, работающие на стандартных серверах Web. Они поставляются большинством производителей операционных систем. Примерами могут служить Novell Internet Caching System и Microsoft Proxy Server. Некоторые системные администраторы предпочитают иметь дело с ПО кэширования, работающим под управлением знакомых им операционных систем или с продуктами одного производителя. В дополнение к относительной дешевизне, простоте установки и конфигурирования, к достоинствам программных систем кэширования можно отнести также возможность их работы на существующих серверах UNIX, NetWare или Windows NT. Хотя эта особенность позволяет обойтись при установке системы кэширования без изучения незнакомой операционной системы, таким продуктам не хватает масштабируемости и гибкости — качеств, необходимых для того, чтобы кэш работал с требуемой производительностью в специфических конфигурациях сети. Тем не менее программный подход вполне применим в локальных сетях средних размеров.

Второй категорией продуктов являются предустановленные серверы кэширования. В комплекс обычно входят ОС UNIX или NetWare, специальное программное обеспечение и готовое стандартное оборудование. Такие комплексы (например, Dell PowerApp.cache, Compaq TaskSmart и Quantex WebXL) обладают более высокой степенью масштабируемости и управляемости, а также очень просты в установке. Однако они узко специализированы и не решают никаких других задач, кроме кэширования.

Завершая описание этой категории продуктов, мы можем упомянуть еще Qube компании Cobalt Networks и NetCache компании Network Appliance, работающие под управлением ОС UNIX. Будучи более дорогими, чем системы Dell или Compaq, они тем не менее дешевле решения компании Inktomi (еще одного лидера на рынке кэширующих серверов), в котором производитель объединяет Traffic Server собственной разработки с маршрутизатором или устройством балансировки нагрузки от Alteon или Foundry Networks. Рассматриваемая категория продуктов предназначена для крупных сетей, так как здесь базовые функции кэширования сочетаются с высокой надежностью и отказоустойчивостью. Данный подход целесообразно использовать для долгосрочных проектов, хотя мы еще раз должны подчеркнуть высокую стоимость этих систем по сравнению с продуктами двух других категорий.

Наконец, высшую ступеньку пьедестала занимают специализированные аппаратные средства кэширования. Эта категория оборудования работает под управлением собственной ОС, специально разработанной для оптимизации кэширования. Модификация ядра ОС повышает эффективность обработки продолжительных потоков данных, файлов большого размера и трафика длительных сеансов связи. Среди прочих на рынке специализированных кэширующих устройств фигурируют компании CacheFlow, InfoLibria, Cisco Systems и Lucent Technologies. Специализация продуктов приводит к появлению более развитых и специфических решений: proxy для Web, управления контентом, сетевого резервирования и других функций, относящихся к доставке информационных ресурсов. Пока что рынок плохо принимает специализированные аппаратные системы кэширования, особенно с учетом конкуренции со стороны недорогих многоцелевых серверов, традиционно доминирующих по объемам продаж. Все еще существует обширная категория сетевых администраторов, избегающих применения специализированных устройств кэширования, несмотря на предоставляемые ими возможности централизованного управления.

Качества хорошей кэширующей системы

Далее приведен список желательных качеств кэширующей системы.

Основные показатели производительности.

Установка кэширующей системы должна реально ускорять отклик сети. Такое ускорение возможно только в случае высокоскоростного соединения между клиентами и кэширующей системой при наличии устройства балансировки нагрузки, чтобы запросы от клиентов равномерно распределялись между кэширующими устройствами. Без такого высокоскоростного соединения обслуживание пользователей было бы даже эффективнее при их непосредственном обращении к серверу с исходными информационными ресурсами, минуя кэш. Не менее важно избегать «застоя» информации, осуществляя проверку ее актуальности в реальном времени. В противном случае системой выдаются устаревшие данные, дискредитируя саму идею кэширования. (Следует учитывать тот факт, что кэширование объектов большого объема, например статических графических файлов, уменьшает скорость просмотра и негативно влияет на производительность.) Некоторые провайдеры доставки контента, в частности Digital Island, обеспечивают доступ к статистике журнала событий, показывающей степень актуальности информации и вероятность попаданий в кэш.

Оптимизированная производительность.

Благодаря своим оптимизированным аппаратным и программным средствам, специализированные кэширующие аппаратные устройства являются в этом смысле фаворитами. Например, собственное программное обеспечение CacheOS компании CacheFlow, по словам представителя компании Говатоса, быстрее, легче в управлении, надежнее и безопаснее кэширующего программного обеспечения для платформ UNIX или Windows NT. Конечно, кэширующее ПО на универсальных серверах легче адаптируется к потребностям заказчика и обеспечивает большую гибкость, поскольку вы можете выполнить любую программу. И все же перед покупкой продукта уточните ваши требования к производительности.

Поддержка нескольких протоколов.

Кэширующие системы уже поддерживают трафик HTTP 1.1 и FTP, но по мере повышения спроса на потоковую графическую информацию растет и потребность в поддержке б`ольшего количества протоколов. Даже если в ближайшие планы вашей компании не входит поддержка «живого» видео, не будет лишним добавить протокол передачи сетевых новостей (Network News Transport Protocol, NNTP) и протокол передачи потоков в реальном времени (Real-Time Stream Transport Protocol, RSTP). WCCP и подобные ему протоколы полезны и дают вам больше свободы при выборе сетевой топологии, если вы решите распределять запросы к кэширующему серверу непосредственно на маршрутизаторе. «Выбор поддерживаемых протоколов не всегда очевиден, он требует учета разных факторов, — подчеркивает Кевин Эпстайн, менеджер по продукции Inktomi. — Например, кэшируются ли потоки или просто перенаправляются? Поддерживаются ли наряду с новыми протоколами HTTP 1.1 и RSTP устаревшие HTTP 1.0 и PNA?» Важно также приобретать расширяемые кэширующие системы с интерфейсами прикладного программирования, чтобы можно было интегрировать подключаемые модули и традиционные приложения.

Простота управления.

Вообще говоря, управление следует автоматизировать, уменьшая тем самым загрузку персонала и количество человеческих ошибок. На управление приходится большая часть расходов по эксплуатации кэширующей системы. Желательна поддержка базы управляющей информации MIB II, уведомлений о проблемах с помощью электронной почты или пейджера, а также удаленного конфигурирования и мониторинга кэша. Функции администрирования должны быть реализованы как на основе браузера, так и на базе интерфейса командной строки. Компании CacheFlow и Quantex Microsystems используют графический пользовательский интерфейс на основе Java, с помощью которого можно получить доступ к файлу подсказки и ознакомиться с рекомендациями по «настройке» кэширующей системы, включающими советы по увеличению числа попаданий в кэш и его своевременному обновлению.

Масштабируемость.

Кэширующие системы должны обслуживать сотни и даже тысячи пользователей и при этом успешно хранить массивы информационных ресурсов объемом от 25 Гбайт до 1 Тбайт и более, особенно в случае массового использования видеоприложений. При масштабировании решения по кэшированию обычно применяется протокол ICP (Internet Cache Protocol); в соответствии с данным протоколом несколько кэширующих серверов организуются в виде иерархического дерева (по схеме главный/подчиненный). Такое решение обеспечивает большую емкость, но при этом увеличивается сетевой трафик и избыточность системы хранения часто запрашиваемых страниц Web. Среди кэширующих серверов должны быть выделены главный и подчиненные. Последние сверяют запросы со списком хранимых объектов Web. Функции управления должны включать поддержку виртуальной и логической конфигурации, а также возможность генерации параметров, которые задают режим автоматического сохранения определенного количества копий объекта, информацию о группах объектов и график обновления таблиц кластера.

«В разработанном при спонсорской поддержке Microsoft протоколе CARP (Cache Array Routing Protocol) присущие протоколу ICP проблемы отсутствуют, однако он ориентирован на клиентов и не является общепринятым, — говорит Ферстбрук. — Некоторые производители поддерживают собственный кластерный протокол в дополнение к ICP и CARP. При прозрачных реализациях мы рекомендуем не полагаться на такие протоколы, для распределения нагрузки внутри кэширующего кластера лучше применять коммутаторы Уровня 4 или маршрутизаторы Cisco с поддержкой WCCP».

Отказоустойчивость и надежность.

Время безотказной работы следует оценить со всей возможной тщательностью, обратив внимание на параметры производительности, которые вы ожидаете от своей системы. Эти параметры могут быть выражены процентом попадания в кэш, скоростью приема и передачи данных, а также эффективностью кэширования. Кроме того, поскольку кэширующие устройства располагаются обычно перед парком серверов, они могут представлять собой критическую точку отказа. Продукт DynaCache компании InfoLibria может конфигурироваться для автоматического переключения в режим обхода или отключения функций кэширования в случае системного сбоя (т. е. электромеханический мост позволяет пустить трафик в обход кэша). Однако сконфигурировать такую систему непросто. Вам следует внимательно присмотреться к аналогичным возможностям продукции других производителей и сопоставить их достоинства со временем, затрачиваемым на конфигурирование.

Повысить надежность можно также, воспользовавшись услугами провайдеров доставки контента. «Digital Island внедряет отказоустойчивые кластеры кэширующих серверов, — сообщает представитель этой компании Лим. — Отказоустойчивость обеспечивается как на уровне кластера с использованием локальной балансировки нагрузки и устройств восстановления после сбоя, так и на сетевом уровне, путем внедрения интеллектуальной технологии Best Distributor Selection, в соответствии с которой запросы направляются к оптимальной точке доставки в реальном времени с учетом изменяющегося состояния сети».

Безопасность.

Хотя упомянутые ранее производители не обращали особого внимания на этот момент, не следует забывать о безопасности и контроле доступа к информации, особенно в случае удаленного управления системами.

Кэширование и экономия денег

Помимо упомянутого ранее списка требований, которые необходимо учитывать при выборе системы кэширования, следует иметь в виду еще несколько обстоятельств. Во-первых, у вас может возникнуть желание использовать одновременно корпоративные кэширующие серверы и сеть провайдера доставки контента, которые дополняли бы друг друга. Для этого в кэширующих устройствах должна быть предусмотрена возможность интеграции с сетями доставки для предварительной загрузки и управления контентом. Во-вторых, системы кэширования должны поддерживать большое количество дополнительных функций: например, фильтрацию, управление потоками, антивирусный контроль, а также интерактивные программы. Это очень важно для того, чтобы ваша сеть морально не устаревала и могла нормально работать при изменении конфигурации и увеличении количества пользователей. В-третьих, убедитесь, что кэширующее устройство способно обрабатывать различные виды потоковых данных в случае передачи информационных ресурсов как в реальном времени, так и по требованию.

Хорошей мерой оценки возврата инвестиций в кэширование является отношение производительности к затраченным средствам, причем в данном случае производительность измеряется скоростью доступа к данным и количеством обслуженных соединений в секунду. При подсчете экономии необходимо учитывать сокращение потребления пропускной способности сетей, стоимость кэширующей системы и эксплуатационные расходы на ее сопровождение, оплату труда персонала и занимаемое место в монтажной стойке. Обычно в области телекоммуникаций такого рода вычисления проделать трудно, но для кэширующих систем они сравнительно несложны. Рассмотренная в данной статье технология является надежной и понятной, она уже продемонстрировала реальные результаты как в корпоративных, так и в общедоступных сетях.


НАЗАД   СОДЕРЖАНИЕ   ВПЕРЕД


Hosted by uCoz